package com.ruoyi.points.dao;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.points.domain.PointsChangeRecord;

/**
 * 积分变动记录Dao接口
 *
 * @author 区嘉盛
 * @date 2025-06-17
 */
public interface IPointsChangeRecordDao extends IService<PointsChangeRecord> {

    default PointsChangeRecord getMapper(){return (PointsChangeRecord) getMapper();}

    /**
     * 记录积分变动并更新用户积分
     *
     * @param userId 用户ID
     * @param pointsChange 积分变化值（正数增加，负数减少）
     * @param changeSourceType 变动来源类型
     * @param batchCode 批次编码，可选参数，如果为null则不设置批次编码
     * @return 结果
     */
    int recordAndUpdatePoints(Long userId, Long pointsChange, Long changeSourceType, String batchCode);
}